Text and pictures are sometimes printed using closely spaced dots, called pixels. The individual pixels are not easily perceived by the human eye but rather appear to merge into adjacent pixels to form a continuous, solid symbol or image. Such pixels are printed by facsimile machines, dot matrix printers, and other printing or displaying devices.
The generation of pixels, being digital rather than analog, inherently results in some quantization error, since a pixel is usually either black or white. Pixels of complementary colors or gray shades can also be printed, and the resulting printed patterns suffer (to varying degrees) from the same quantization effects as patterns printed using only black and white pixels. Thus, a diagonal line printed with pixels will usually appear as small steps rather than a smooth diagonal line due to this quantization error. This problem also appears in attempting to print any symbol or line which is not comprised of solely horizontal or vertical lines. As the printed dots per inch (dpi) is increased, this quantization error becomes less noticeable.
The dpi printing in facsimile machines is intentionally set to be relatively low to enable faster transmission of the pixel data to the receiving facsimile machine. Thus, because of the relatively large pixels printed by a facsimile machine due to the low dpi printing, diagonal and rounded figures appear jagged to the naked eye.
One known amelioration technique is to detect a certain pixel pattern in a block of pixels and insert an interpolated row of pixels to provide smoothing of this pixel pattern. Such smoothing may be performed by providing a look-up table which is addressed by the incoming pixel pattern and whose output contains one or more interpolated rows of pixels to augment the original pattern. The patterns stored in the look-up table can themselves be flawed and are difficult to generate.
Other methods of smoothing pixel patterns include row averaging, where an average of two original rows of pixels is inserted between the two original rows. This technique has certain disadvantages, such as causing dark and light areas of pictures to be unevenly affected, distorting them excessively. Further, any one-bit ticks or notches in a line of pixels are scaled into blobs, making them more conspicuous. Still further, horizontal scaling is not possible, limiting the amount of smoothing which can be done and resulting in visible jagged edges.
Another method for smoothing a pixel pattern is to perform low pass filtering on the pixel pattern. This technique removes stray dots and ticks as well as smooths the steps in diagonal or curved lines; however, such low pass filtering may also eliminate details from the original image, such as narrow white or black lines. Thus, such image processing causes dark and light areas of pictures to be unevenly affected, resulting in distortion.
The above techniques are usually used in combination with pixel scaling, where the dpi of the printer is set to be greater than the dpi of the original pixel pattern to increase the resolution of the printed pattern. Thus, for example, a block of four pixels may be printed for every one original pixel. Each printed pixel would then be approximately one-quarter the size of the original pixel to effectively increase the resolution of the printed pattern by four. Such scaling only has advantages when some correction of the original pixel pattern has been performed.
What is needed is an improved method for correcting quantization errors in a transmitted pattern formed of pixels.